The present disclosure relates generally to computer readable code, and more particularly to computer readable code that includes class files.
Due to the complexity of software, it is difficult to reliably determine if a particular class file has been compiled from a particular piece of source code. Source code is the originally written code that is in a human-readable state. A compiler is used to convert the source code into a machine-readable format. For example, a piece of software may be written in java. Various compilers, sometimes referred to as java development kits, will change the human readable java code into java bytecode. The java bytecode is placed into a class file. Java bytecode is able to be read by a java virtual machine that is designed to run on various platforms.
It is often desirable to determine if a particular class file was derived from a particular piece of source code. For example, there may be a number of known pieces of source code that have security vulnerabilities. But, two class files that are compiled from the same source code may be different if they were compiled by different compilers. Thus, when comparing a particular class file with several class files from a database to see if any of them are the same, an actual match may be missed due to compiler differences.
Accordingly, it would be desirable to provide improved systems and methods for comparing class files.